package com.huaxindata.im.model.utils;

import java.util.HashMap;
import java.util.Map;

import wseemann.media.FFmpegMediaMetadataRetriever;

/**
 * Created by Administrator on 2017/8/15.
 * 音频或视频类文件的工具类，主要是获取音视频文件的时间长
 */

public class MediaFileUtils {
    /**
     * 根据指定的路径获取时长
     * @param mp3Path
     * @return
     */
    public static long getMediaTime(String mp3Path) {
        if (mp3Path == null) {
            return 0L;
        }
        FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
        try {
            Map<String,String> headers = new HashMap<>();
            headers.put("User-Agent", "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; MW-KW-001 Build/JRO03C) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.001 U4/0.8.0 Mobile Safari/533.1");
            mmr.setDataSource(mp3Path, headers);
            return Long.parseLong(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_DURATION)); // 播放时长单位为毫秒
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            mmr.release();
        }
        return 0;
    }
}
